
#ifndef	GAME_RUNNING_SWITCHING_STATE_HPP
#define	GAME_RUNNING_SWITCHING_STATE_HPP

#include <game_state/game_state.hpp>
#include <messenger/messenger.hpp>
#include <level/level_fwd.hpp>

class game_running_switching_state : public base_game_state
{
public:

	game_running_switching_state( level_ptr level_ );
	~game_running_switching_state( );

	game_state_ptr step( float delta_time );
	void draw( );

private:

	level_ptr		m_level;
	bool			m_valid;
	size_t			m_origional_active;

	boost::signals2::scoped_connection m_messenger_connection;
	bool			m_quitting;
	float			m_fade_out_timer;

	void message_callback( std::string const & message_name, message_data_ptr data );
};

#endif	//GAME_RUNNING_SWITCHING_STATE_HPP